﻿using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Globalization;
using System.Web.Mvc;
using System.Web.Security;
using Domain;

namespace CantinhodaCegonha.Models
{

    public class ChangePasswordModel
    {
        [Required(ErrorMessage = "Password é obrigatório!")]
        [DataType(DataType.Password)]
        [Display(Name = "Password actual")]
        public string OldPassword { get; set; }

        [Required]
        [StringLength(100, ErrorMessage = "A {0} tem de ter no minimo {2} caracteres.", MinimumLength = 6)]
        [DataType(DataType.Password)]
        [Display(Name = "Nova password")]
        public string NewPassword { get; set; }

        [DataType(DataType.Password)]
        [Display(Name = "Confirmar nova password")]
        [Compare("NewPassword", ErrorMessage = "As passwords inseridas não combinam.")]
        public string ConfirmPassword { get; set; }
    }

    public class LogOnModel
    {
        [Required(ErrorMessage = "Email é obrigatório!")]
        [Display(Name = "Email")]
        public string UserName { get; set; }

        [Required(ErrorMessage = "Password é obrigatório!")]
        [DataType(DataType.Password)]
        [Display(Name = "Password")]
        public string Password { get; set; }

        [Display(Name = "Permanecer ligado?")]
        public bool RememberMe { get; set; }
    }

    public class RegisterModel
    {
        [Required(ErrorMessage="Nome é obrigatório!")]
        [Display(Name = "Nome")]
        public string UserName { get; set; }

        [Required(ErrorMessage = "Email é obrigatório!")]
        [DataType(DataType.EmailAddress)]
        [Display(Name = "Email")]
        [RegularExpression("^[a-z0-9_\\+-]+(\\.[a-z0-9_\\+-]+)*@[a-z0-9]+(\\.[a-z0-9]+)*\\.([a-z]{2,4})$",ErrorMessage="Email inválido.")]
        public string Email { get; set; }

        [Required(ErrorMessage = "Password é obrigatório!")]
        [StringLength(100, ErrorMessage = "A {0} tem de ter no minimo {2} caracteres.", MinimumLength = 6)]
        [DataType(DataType.Password)]
        [Display(Name = "Password")]
        public string Password { get; set; }

        [DataType(DataType.Password)]
        [Display(Name = "Repetir password")]
        [Compare("Password", ErrorMessage = "As passwords inseridas não combinam.")]
        public string ConfirmPassword { get; set; }

        public string Foto { get; set; }
        public List<FilhosRegisto> filhos { get; set; }
        
        [Display(Name = "Sou pai")]
        public bool SouPai { get; set; }
        [Display(Name = "Estou a tentar conceber")]
        public bool TentarEngravidar { get; set; }
        
        [RegularExpression("^[a-z0-9_\\+-]+(\\.[a-z0-9_\\+-]+)*@[a-z0-9]+(\\.[a-z0-9]+)*\\.([a-z]{2,4})$", ErrorMessage = "Email inválido.")]
        [DataType(DataType.EmailAddress)]
        [Display(Name = "Email companheiro")]
        public string EmailParceiro { get; set; }

        public List<int> Newsletter { get; set; }
        
    }

    public class FilhosRegisto
    {
        [Display(Name = "Data nascimento")]
        public DateTime? DataNascimento { get; set; }
        [Display(Name = "Género")]
        public string Genero { get; set; }
        [Display(Name = "Nome bebé")]
        public string Nome { get; set; }
        public string Foto { get; set; }
    }
}
